[INFO] fetching crate substrate-ai 2.0.2...
[INFO] building substrate-ai-2.0.2 against master#ff34b919075f35a1787659e9c448a34b06bab8de for issue-85264
[INFO] extracting crate substrate-ai 2.0.2 into /workspace/builds/worker-3/source
[INFO] validating manifest of crates.io crate substrate-ai 2.0.2 on toolchain ff34b919075f35a1787659e9c448a34b06bab8de
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate substrate-ai 2.0.2
[INFO] finished tweaking crates.io crate substrate-ai 2.0.2
[INFO] tweaked toml for crates.io crate substrate-ai 2.0.2 written to /workspace/builds/worker-3/source/Cargo.toml
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 150cf3cdd5f0d6d53465fab4f46f4191f3a8cb99771b793a38e5130fc5324453
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "150cf3cdd5f0d6d53465fab4f46f4191f3a8cb99771b793a38e5130fc5324453", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "150cf3cdd5f0d6d53465fab4f46f4191f3a8cb99771b793a38e5130fc5324453", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "150cf3cdd5f0d6d53465fab4f46f4191f3a8cb99771b793a38e5130fc5324453", kill_on_drop: false }`
[INFO] [stdout] 150cf3cdd5f0d6d53465fab4f46f4191f3a8cb99771b793a38e5130fc5324453
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ed0e8c811dcdc929c68b6e65b62125b2b3f2e57874054863eae199538f927c00
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "ed0e8c811dcdc929c68b6e65b62125b2b3f2e57874054863eae199538f927c00", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.95
[INFO] [stderr]    Compiling either v1.6.1
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling futures-core v0.3.15
[INFO] [stderr]    Compiling futures-task v0.3.15
[INFO] [stderr]    Compiling futures-channel v0.3.15
[INFO] [stderr]    Compiling itoa v0.4.7
[INFO] [stderr]    Compiling futures-sink v0.3.15
[INFO] [stderr]    Compiling futures-io v0.3.15
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]    Compiling futures-util v0.3.15
[INFO] [stderr]    Compiling regex-automata v0.1.9
[INFO] [stderr]    Compiling trie-root v0.16.0
[INFO] [stderr]    Compiling hashbrown v0.9.1
[INFO] [stderr]    Compiling tracing v0.1.26
[INFO] [stderr]    Compiling uint v0.8.5
[INFO] [stderr]    Compiling syn v1.0.72
[INFO] [stderr]    Compiling block-buffer v0.7.3
[INFO] [stderr]    Compiling block-buffer v0.9.0
[INFO] [stderr]    Compiling pbkdf2 v0.3.0
[INFO] [stderr]    Compiling bitvec v0.17.4
[INFO] [stderr]    Compiling sha2 v0.8.2
[INFO] [stderr]    Compiling sha2 v0.9.5
[INFO] [stderr]    Compiling tracing-log v0.1.2
[INFO] [stderr]    Compiling trie-db v0.22.5
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling parking_lot_core v0.8.3
[INFO] [stderr]    Compiling chrono v0.4.19
[INFO] [stderr]    Compiling backtrace v0.3.59
[INFO] [stderr]    Compiling parking_lot_core v0.7.2
[INFO] [stderr]    Compiling wasmi v0.6.2
[INFO] [stderr]    Compiling num_cpus v1.13.0
[INFO] [stderr]    Compiling matchers v0.0.1
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling parking_lot v0.10.2
[INFO] [stderr]    Compiling parking_lot v0.11.1
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling rand_pcg v0.2.1
[INFO] [stderr]    Compiling sp-panic-handler v2.0.1
[INFO] [stderr]    Compiling once_cell v1.7.2
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling thread_local v1.1.3
[INFO] [stderr]    Compiling fixed-hash v0.6.1
[INFO] [stderr]    Compiling libsecp256k1 v0.3.5
[INFO] [stderr]    Compiling twox-hash v1.6.0
[INFO] [stderr]    Compiling synstructure v0.12.4
[INFO] [stderr]    Compiling serde_derive v1.0.126
[INFO] [stderr]    Compiling zeroize_derive v1.1.0
[INFO] [stderr]    Compiling sp-debug-derive v2.0.1
[INFO] [stderr]    Compiling impl-trait-for-tuples v0.1.3
[INFO] [stderr]    Compiling ref-cast-impl v1.0.6
[INFO] [stderr]    Compiling futures-macro v0.3.15
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]    Compiling parity-util-mem-derive v0.1.0
[INFO] [stderr]    Compiling dyn-clonable-impl v0.9.0
[INFO] [stderr]    Compiling derive_more v0.99.14
[INFO] [stderr]    Compiling frame-support-procedural-tools-derive v2.0.1
[INFO] [stderr]    Compiling dyn-clonable v0.9.0
[INFO] [stderr]    Compiling zeroize v1.3.0
[INFO] [stderr]    Compiling curve25519-dalek v2.1.2
[INFO] [stderr]    Compiling merlin v2.0.1
[INFO] [stderr]    Compiling curve25519-dalek v3.1.0
[INFO] [stderr]    Compiling secrecy v0.6.0
[INFO] [stderr]    Compiling ref-cast v1.0.6
[INFO] [stderr]    Compiling failure v0.1.8
[INFO] [stderr]    Compiling tiny-bip39 v0.7.3
[INFO] [stderr]    Compiling schnorrkel v0.9.1
[INFO] [stderr]    Compiling substrate-bip39 v0.4.2
[INFO] [stderr]    Compiling futures-executor v0.3.15
[INFO] [stderr]    Compiling futures v0.3.15
[INFO] [stderr]    Compiling serde v1.0.126
[INFO] [stderr]    Compiling toml v0.5.8
[INFO] [stderr]    Compiling impl-serde v0.3.1
[INFO] [stderr]    Compiling tracing-serde v0.1.2
[INFO] [stderr]    Compiling serde_json v1.0.64
[INFO] [stderr]    Compiling ed25519-dalek v1.0.1
[INFO] [stderr]    Compiling postcard v0.5.2
[INFO] [stderr]    Compiling tracing-subscriber v0.2.18
[INFO] [stderr]    Compiling proc-macro-crate v0.1.5
[INFO] [stderr]    Compiling frame-support-procedural-tools v2.0.1
[INFO] [stderr]    Compiling parity-scale-codec-derive v1.2.3
[INFO] [stderr]    Compiling sp-runtime-interface-proc-macro v2.0.1
[INFO] [stderr]    Compiling frame-support-procedural v2.0.1
[INFO] [stderr]    Compiling parity-scale-codec v1.3.7
[INFO] [stderr]    Compiling impl-codec v0.4.2
[INFO] [stderr]    Compiling sp-storage v2.0.1
[INFO] [stderr]    Compiling sp-wasm-interface v2.0.1
[INFO] [stderr]    Compiling sp-tracing v2.0.1
[INFO] [stderr]    Compiling sp-arithmetic v2.0.1
[INFO] [stderr]    Compiling primitive-types v0.7.3
[INFO] [stderr]    Compiling sp-externalities v0.8.1
[INFO] [stderr]    Compiling parity-util-mem v0.7.0
[INFO] [stderr]    Compiling sp-runtime-interface v2.0.1
[INFO] [stderr]    Compiling memory-db v0.24.1
[INFO] [stderr]    Compiling sp-core v2.0.1
[INFO] [stderr]    Compiling sp-trie v2.0.1
[INFO] [stderr]    Compiling sp-inherents v2.0.1
[INFO] [stderr]    Compiling frame-metadata v12.0.1
[INFO] [stderr]    Compiling sp-state-machine v0.8.1
[INFO] [stderr]    Compiling sp-io v2.0.1
[INFO] [stderr]    Compiling sp-application-crypto v2.0.1
[INFO] [stderr]    Compiling sp-runtime v2.0.1
[INFO] [stderr]    Compiling sp-version v2.0.1
[INFO] [stderr]    Compiling frame-support v2.0.1
[INFO] [stderr]    Compiling frame-system v2.0.1
[INFO] [stderr]    Compiling substrate-ai v2.0.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `HyperbolicTangent`, `Identity`, `LeakyRectifiedLinearUnit`, `RectifiedLinearUnit`, `Sigmoid`, `SoftMax`, `SoftPlus`
[INFO] [stdout]   --> src/lib.rs:16:2
[INFO] [stdout]    |
[INFO] [stdout] 16 |     HyperbolicTangent,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     Sigmoid,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 18 |     Identity,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 19 |     LeakyRectifiedLinearUnit,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     RectifiedLinearUnit,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     SoftMax,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 22 |     SoftPlus    
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Activation`
[INFO] [stdout]   --> src/lib.rs:27:2
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Activation
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CostFunctionArgu`, `CostFunctions`
[INFO] [stdout]   --> src/lib.rs:32:2
[INFO] [stdout]    |
[INFO] [stdout] 32 |     CostFunctions,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 33 |     CostFunctionArgu
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `activation::ActivationKind`, `activation::Activation`
[INFO] [stdout]  --> src/engine/nl.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     activation::Activation,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     activation::ActivationKind,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::prelude::*`
[INFO] [stdout]  --> src/engine/nl.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`
[INFO] [stdout]  --> src/engine/utils.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Serialize,Deserialize};
[INFO] [stdout]   |             ^^^^^^^^^ ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `traits::Get`
[INFO] [stdout]  --> src/lib.rs:9:89
[INFO] [stdout]   |
[INFO] [stdout] 9 | use frame_support::{decl_module, decl_storage, decl_event,ensure, decl_error, dispatch, traits::Get};
[INFO] [stdout]   |                                                                                         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CostFunction`
[INFO] [stdout]   --> src/lib.rs:31:2
[INFO] [stdout]    |
[INFO] [stdout] 31 |     CostFunction,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/engine/matrix.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let mut key = vec![0u8;m*n];
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> src/engine/nn.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn new()-> Self{
[INFO] [stdout]    |        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `set_on_error`
[INFO] [stdout]   --> src/engine/nn.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn set_on_error<F>(&mut self,func: F)
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `set_on_epoch`
[INFO] [stdout]   --> src/engine/nn.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn set_on_epoch<F>(&mut self,func: F)
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 12 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 1m 43s
[INFO] running `Command { std: "docker" "inspect" "ed0e8c811dcdc929c68b6e65b62125b2b3f2e57874054863eae199538f927c00", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ed0e8c811dcdc929c68b6e65b62125b2b3f2e57874054863eae199538f927c00", kill_on_drop: false }`
[INFO] [stdout] ed0e8c811dcdc929c68b6e65b62125b2b3f2e57874054863eae199538f927c00
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0ac1e251313db52b78be9ba1a5eecb17b8a4c5d243e4921dbc879c14276ca9de
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "0ac1e251313db52b78be9ba1a5eecb17b8a4c5d243e4921dbc879c14276ca9de", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]    Compiling substrate-ai v2.0.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `HyperbolicTangent`, `Identity`, `LeakyRectifiedLinearUnit`, `RectifiedLinearUnit`, `Sigmoid`, `SoftMax`, `SoftPlus`
[INFO] [stdout]   --> src/lib.rs:16:2
[INFO] [stdout]    |
[INFO] [stdout] 16 |     HyperbolicTangent,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     Sigmoid,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 18 |     Identity,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 19 |     LeakyRectifiedLinearUnit,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     RectifiedLinearUnit,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     SoftMax,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 22 |     SoftPlus    
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Activation`
[INFO] [stdout]   --> src/lib.rs:27:2
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Activation
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CostFunctionArgu`, `CostFunctions`
[INFO] [stdout]   --> src/lib.rs:32:2
[INFO] [stdout]    |
[INFO] [stdout] 32 |     CostFunctions,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 33 |     CostFunctionArgu
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `activation::ActivationKind`, `activation::Activation`
[INFO] [stdout]  --> src/engine/nl.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     activation::Activation,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     activation::ActivationKind,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::prelude::*`
[INFO] [stdout]  --> src/engine/nl.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`
[INFO] [stdout]  --> src/engine/utils.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Serialize,Deserialize};
[INFO] [stdout]   |             ^^^^^^^^^ ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `traits::Get`
[INFO] [stdout]  --> src/lib.rs:9:89
[INFO] [stdout]   |
[INFO] [stdout] 9 | use frame_support::{decl_module, decl_storage, decl_event,ensure, decl_error, dispatch, traits::Get};
[INFO] [stdout]   |                                                                                         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CostFunction`
[INFO] [stdout]   --> src/lib.rs:31:2
[INFO] [stdout]    |
[INFO] [stdout] 31 |     CostFunction,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/engine/matrix.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let mut key = vec![0u8;m*n];
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> src/engine/nn.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn new()-> Self{
[INFO] [stdout]    |        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `set_on_error`
[INFO] [stdout]   --> src/engine/nn.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn set_on_error<F>(&mut self,func: F)
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `set_on_epoch`
[INFO] [stdout]   --> src/engine/nn.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn set_on_epoch<F>(&mut self,func: F)
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 12 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::nl`
[INFO] [stdout]   --> src/engine/nl.rs:73:16
[INFO] [stdout]    |
[INFO] [stdout] 73 |     use crate::nl::NeuralLayer;
[INFO] [stdout]    |                ^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                unresolved import
[INFO] [stdout]    |                help: a similar path exists: `crate::engine::nl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::matrix`
[INFO] [stdout]   --> src/engine/nl.rs:74:16
[INFO] [stdout]    |
[INFO] [stdout] 74 |     use crate::matrix::MatrixTrait;
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                unresolved import
[INFO] [stdout]    |                help: a similar path exists: `crate::engine::matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::activation`
[INFO] [stdout]   --> src/engine/nl.rs:75:16
[INFO] [stdout]    |
[INFO] [stdout] 75 |     use crate::activation::Sigmoid;
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                unresolved import
[INFO] [stdout]    |                help: a similar path exists: `crate::engine::activation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::activation`
[INFO] [stdout]    --> src/engine/nn.rs:298:16
[INFO] [stdout]     |
[INFO] [stdout] 298 |     use crate::activation::Sigmoid;
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                unresolved import
[INFO] [stdout]     |                help: a similar path exists: `crate::engine::activation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::activation`
[INFO] [stdout]    --> src/engine/nn.rs:299:16
[INFO] [stdout]     |
[INFO] [stdout] 299 |     use crate::activation::SoftMax;
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                unresolved import
[INFO] [stdout]     |                help: a similar path exists: `crate::engine::activation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::activation`
[INFO] [stdout]    --> src/engine/nn.rs:300:16
[INFO] [stdout]     |
[INFO] [stdout] 300 |     use crate::activation::HyperbolicTangent;
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                unresolved import
[INFO] [stdout]     |                help: a similar path exists: `crate::engine::activation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::sample`
[INFO] [stdout]    --> src/engine/nn.rs:301:16
[INFO] [stdout]     |
[INFO] [stdout] 301 |     use crate::sample::Sample;
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                unresolved import
[INFO] [stdout]     |                help: a similar path exists: `crate::engine::sample`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::nl`
[INFO] [stdout]    --> src/engine/nn.rs:302:16
[INFO] [stdout]     |
[INFO] [stdout] 302 |     use crate::nl::NeuralLayer;
[INFO] [stdout]     |                ^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                unresolved import
[INFO] [stdout]     |                help: a similar path exists: `crate::engine::nl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::nn`
[INFO] [stdout]    --> src/engine/nn.rs:303:16
[INFO] [stdout]     |
[INFO] [stdout] 303 |     use crate::nn::NeuralNetwork;
[INFO] [stdout]     |                ^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                unresolved import
[INFO] [stdout]     |                help: a similar path exists: `crate::engine::nn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> src/engine/nn.rs:305:16
[INFO] [stdout]     |
[INFO] [stdout] 305 |     use crate::cost::cross_entropy::CrossEntropy;
[INFO] [stdout]     |                ^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                unresolved import
[INFO] [stdout]     |                help: a similar path exists: `crate::engine::cost`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::matrix`
[INFO] [stdout]    --> src/engine/nn.rs:304:16
[INFO] [stdout]     |
[INFO] [stdout] 304 |     use crate::matrix::MatrixTrait;
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                unresolved import
[INFO] [stdout]     |                help: a similar path exists: `crate::engine::matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::nn`
[INFO] [stdout]    --> src/engine/nn.rs:306:16
[INFO] [stdout]     |
[INFO] [stdout] 306 |     use crate::nn::BlackBox;
[INFO] [stdout]     |                ^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                unresolved import
[INFO] [stdout]     |                help: a similar path exists: `crate::engine::nn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::cost`
[INFO] [stdout]   --> src/engine/cost/cross_entropy.rs:72:16
[INFO] [stdout]    |
[INFO] [stdout] 72 |     use crate::cost::CostFunction;
[INFO] [stdout]    |                ^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                unresolved import
[INFO] [stdout]    |                help: a similar path exists: `crate::engine::cost`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::matrix`
[INFO] [stdout]   --> src/engine/cost/cross_entropy.rs:74:16
[INFO] [stdout]    |
[INFO] [stdout] 74 |     use crate::matrix::Matrix;
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                unresolved import
[INFO] [stdout]    |                help: a similar path exists: `crate::engine::matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::matrix`
[INFO] [stdout]   --> src/engine/cost/cross_entropy.rs:75:16
[INFO] [stdout]    |
[INFO] [stdout] 75 |     use crate::matrix::MatrixTrait;
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                unresolved import
[INFO] [stdout]    |                help: a similar path exists: `crate::engine::matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `serde_json`
[INFO] [stdout]    --> src/engine/nn.rs:319:17
[INFO] [stdout]     |
[INFO] [stdout] 319 |         let s = serde_json::to_string(&test).unwrap();
[INFO] [stdout]     |                 ^^^^^^^^^^ use of undeclared crate or module `serde_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `serde_json`
[INFO] [stdout]    --> src/engine/nn.rs:321:32
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let d: NeuralNetwork = serde_json::from_str(s.as_str()).unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^^ use of undeclared crate or module `serde_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0437]: type `ModuleToIndex` is not a member of trait `system::Trait`
[INFO] [stdout]   --> src/mock.rs:45:2
[INFO] [stdout]    |
[INFO] [stdout] 45 |     type ModuleToIndex = ();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^ not a member of trait `system::Trait`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `sp_io`
[INFO] [stdout]   --> src/mock.rs:59:26
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn new_test_ext() -> sp_io::TestExternalities {
[INFO] [stdout]    |                          ^^^^^ use of undeclared crate or module `sp_io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `CrossEntropy` in this scope
[INFO] [stdout]    --> src/engine/nn.rs:557:32
[INFO] [stdout]     |
[INFO] [stdout] 557 |         test.set_cost_function(CrossEntropy);
[INFO] [stdout]     |                                ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout] 298 |     use crate::CostFunctions::CrossEntropy;
[INFO] [stdout]     |
[INFO] [stdout] 298 |     use crate::engine::cost::cross_entropy::CrossEntropy;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `CrossEntropy` in this scope
[INFO] [stdout]    --> src/engine/nn.rs:577:32
[INFO] [stdout]     |
[INFO] [stdout] 577 |         test.set_cost_function(CrossEntropy);
[INFO] [stdout]     |                                ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout] 298 |     use crate::CostFunctions::CrossEntropy;
[INFO] [stdout]     |
[INFO] [stdout] 298 |     use crate::engine::cost::cross_entropy::CrossEntropy;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HyperbolicTangent`, `Identity`, `LeakyRectifiedLinearUnit`, `RectifiedLinearUnit`, `Sigmoid`, `SoftMax`, `SoftPlus`
[INFO] [stdout]   --> src/lib.rs:16:2
[INFO] [stdout]    |
[INFO] [stdout] 16 |     HyperbolicTangent,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     Sigmoid,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 18 |     Identity,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 19 |     LeakyRectifiedLinearUnit,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     RectifiedLinearUnit,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     SoftMax,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 22 |     SoftPlus    
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Activation`
[INFO] [stdout]   --> src/lib.rs:27:2
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Activation
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CostFunctionArgu`, `CostFunctions`
[INFO] [stdout]   --> src/lib.rs:32:2
[INFO] [stdout]    |
[INFO] [stdout] 32 |     CostFunctions,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 33 |     CostFunctionArgu
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::Activation`
[INFO] [stdout]   --> src/engine/activation/identity.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     use super::Activation;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::Activation`
[INFO] [stdout]   --> src/engine/activation/hyperbolictangent.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     use super::Activation;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::Activation`
[INFO] [stdout]   --> src/engine/activation/softplus.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     use super::Activation;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::Activation`
[INFO] [stdout]   --> src/engine/activation/rectifiedlinearunit.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     use super::Activation;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::Activation`
[INFO] [stdout]   --> src/engine/activation/leakyrectifiedlinearunit.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     use super::Activation;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `activation::ActivationKind`, `activation::Activation`
[INFO] [stdout]  --> src/engine/nl.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     activation::Activation,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     activation::ActivationKind,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::prelude::*`
[INFO] [stdout]  --> src/engine/nl.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize`, `Serialize`
[INFO] [stdout]  --> src/engine/utils.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Serialize,Deserialize};
[INFO] [stdout]   |             ^^^^^^^^^ ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/tests.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{Error, mock::*};
[INFO] [stdout]   |             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `assert_noop`, `assert_ok`
[INFO] [stdout]  --> src/tests.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use frame_support::{assert_ok, assert_noop};
[INFO] [stdout]   |                     ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `PalletInfo`
[INFO] [stdout]   --> src/mock.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl system::Trait for Test {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `PalletInfo` in implementation
[INFO] [stdout]    |
[INFO] [stdout]    = help: implement the missing item: `type PalletInfo = Type;`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `calc` found for struct `CrossEntropy` in the current scope
[INFO] [stdout]   --> src/engine/cost/cross_entropy.rs:80:36
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct CrossEntropy;
[INFO] [stdout]    | ------------------------ method `calc` not found for this
[INFO] [stdout] ...
[INFO] [stdout] 80 |         let result = cross_entropy.calc(
[INFO] [stdout]    |                                    ^^^^ method not found in `CrossEntropy`
[INFO] [stdout]    | 
[INFO] [stdout]   ::: src/engine/cost/mod.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn calc(&self, prediction: &Matrix, target: &Matrix) -> f64;
[INFO] [stdout]    |        ---- the method is available for `CrossEntropy` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stdout]            `use crate::engine::cost::CostFunction;`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `calc` found for struct `CrossEntropy` in the current scope
[INFO] [stdout]   --> src/engine/cost/cross_entropy.rs:91:36
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct CrossEntropy;
[INFO] [stdout]    | ------------------------ method `calc` not found for this
[INFO] [stdout] ...
[INFO] [stdout] 91 |         let result = cross_entropy.calc(
[INFO] [stdout]    |                                    ^^^^ method not found in `CrossEntropy`
[INFO] [stdout]    | 
[INFO] [stdout]   ::: src/engine/cost/mod.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn calc(&self, prediction: &Matrix, target: &Matrix) -> f64;
[INFO] [stdout]    |        ---- the method is available for `CrossEntropy` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout]    = note: the following trait is implemented but not in scope; perhaps add a `use` for it:
[INFO] [stdout]            `use crate::engine::cost::CostFunction;`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `traits::Get`
[INFO] [stdout]  --> src/lib.rs:9:89
[INFO] [stdout]   |
[INFO] [stdout] 9 | use frame_support::{decl_module, decl_storage, decl_event,ensure, decl_error, dispatch, traits::Get};
[INFO] [stdout]   |                                                                                         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CostFunction`
[INFO] [stdout]   --> src/lib.rs:31:2
[INFO] [stdout]    |
[INFO] [stdout] 31 |     CostFunction,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 24 previous errors; 15 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0046, E0425, E0432, E0433, E0437, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0046`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `substrate-ai`
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `Command { std: "docker" "inspect" "0ac1e251313db52b78be9ba1a5eecb17b8a4c5d243e4921dbc879c14276ca9de", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0ac1e251313db52b78be9ba1a5eecb17b8a4c5d243e4921dbc879c14276ca9de", kill_on_drop: false }`
[INFO] [stdout] 0ac1e251313db52b78be9ba1a5eecb17b8a4c5d243e4921dbc879c14276ca9de
